<!DOCTYPE html>
<html>
<head>
  <title>CSS Values Test: sibling-index() and sibling-count() in flat tree</title>
  <link rel="help" href="https://drafts.csswg.org/css-values-5/#tree-counting" />
  <script src="../../../resources/testharness.js"></script>
  <script src="../../../resources/testharnessreport.js"></script>
</head>
<body>
  <style>
    #host > * {
      orphans: sibling-index();
      widows: sibling-count();
    }
  </style>
  <div id="host">
    <div>Some element.</div>
    <div>Some other element.</div>
    <div slot="unknown">This should be ignored.</div>
    <div id="target">Some third element.</div>
  </div>
  <script>
    test(() => {
      host.attachShadow({mode: 'open'}).innerHTML = `
       <style>
         slot::slotted(*) {
           z-index: sibling-index();
           order: sibling-count();
         }
       </style>
       <div>
         <div>Some text before the slot.</div>
         <slot></slot>
       </div>
      `;
      assert_equals(getComputedStyle(target).zIndex, '4');
      assert_equals(getComputedStyle(target).order, '4');
      assert_equals(getComputedStyle(target).orphans, '4');
      assert_equals(getComputedStyle(target).widows, '4');
    }, 'Host children have sibling-index() and sibling-count() based on the DOM tree order');
</script>
